package 尚硅谷多线程1;
/*
* 多线程的创建，方式一：继承Thread类
* 创建一个继承与Thread类的子类
* 重写Thread类和run()--> 将此线程执行的操作声明在run()中
* 创建Thread类的子类的对象
* 通过此对象调用start()
*
* 问题一：我们不能通过直接调用run()的方式启动线程
* 问题二：不可以让已经start()的线程再去执行run()，汇报IllegalThreadstateException异常错误
* 我们需要重现再创建一个对象
* */
public class MyThread {
    public static void main(String[] args) {
        //3.创建一个Thread类的子类的对象
        Thread1 thread1=new Thread1();
        //4.通过此对象调用start()(作用一：启动当前线程，作用二：调用当前线程run())
        thread1.start();

        //thread1.run();调用这个run()方法就是在main主线程运行这个方法并没有创建新的线程

        //for 如下的操作仍然是在main 线程中执行的
        for (int i = 0; i < 100; i++) {
            if (i%2==0){
                System.out.println(i+"-----main------");
            }
        }
    }
}
// 创建一个继承于Thread类的子类
class Thread1 extends Thread{
    //1.重写Thread类的run()
    @Override
    public void run(){
       // 2.重写Thread类中的run()方法，将线程执行的操作声明在run()方法中
        for (int i = 0; i < 100; i++) {
            if (i%2 ==0){
                System.out.println(i+"子线程");
            }
        }
    }
}
